home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / util / text / proged1.lha / InstallProgED / sources / include / Ped.h
C/C++ Source or Header  |  1995-07-28  |  17KB  |  664 lines

  1.  
  2. /******
  3.  * Include utili
  4.  ******/
  5.  
  6. #include <exec/types.h>
  7. #include <exec/ports.h>
  8. #include <dos/dos.h>
  9.  
  10.  
  11.  
  12. /******
  13.  * Define utili
  14.  ******/
  15.  
  16. #define ASM        __asm
  17. #define SAVEDS        __saveds
  18. #define RG(x)        register __ ## x
  19.  
  20. #define MAXCOLOR    32    /* # Max di colori che il programma memorizza */
  21. #define MAXDEPTH    5    /* Depth Max relativa */
  22.  
  23. #define MAXREXXARGS    10    /* # Max di argomenti per i comandi AREXX */
  24.  
  25. #define MAXFILENAME    121    /* Lunghezza massima per i file */
  26.  
  27. #define    INSCHAR        1    /* UNDO: Ins. car. (INS) (arg1=char) */
  28. #define REPCHAR        2    /* UNDO: Rim. car. (OVR) (arg1=char) */
  29. #define    DELCHAR        3    /* UNDO: Del. car. */
  30. #define    BACKCHAR    4    /* UNDO: Can. car. */
  31. #define    CUTLINE        5    /* UNDO: Can. linea */
  32. #define    PASTELINE    6    /* UNDO: Paste linea */
  33. #define    CLEARBLOCK    7    /* UNDO: Clear blocco */
  34. #define    CUTBLOCK    8    /* UNDO: Cut blocco */
  35. #define    PASTEBLOCK    9    /* UNDO: Paste blocco */
  36. #define REPLACE        10    /* UNDO: Replace */
  37. #define UPPERCASE    11    /* UNDO: Upper case letter */
  38. #define LOWERCASE    12    /* UNDO: Lower case letter */
  39. #define TOGGLECASE    13    /* UNDO: Toggle case letter */
  40. #define SWAPLINE    14    /* UNDO: Swap line */
  41. #define DOUBLELINE    15    /* UNDO: Double line */
  42. #define UPPERCASEBLOCK    16    /* UNDO: Upper case block */
  43. #define LOWERCASEBLOCK    17    /* UNDO: Lower case block */
  44. #define TOGGLECASEBLOCK    18    /* UNDO: Toggle case block */
  45. #define LAYOUTBLOCK    19    /* UNDO: Layout block */
  46. #define INDENTBLOCK    20    /* UNDO: Indent block */
  47.  
  48. #define MAXMARKER    10    /* # Max di marker */
  49.  
  50. #define IND_MR        '0'    /* Le parole nel vettore Prefs.KeyWordInd[] */
  51. #define IND_ML        '1'    /* devono terminare con uno di questi caratteri */
  52. #define IND_SR        '2'    /* per identificare il tipo di indentazione */
  53. #define IND_SL        '3'    /* da assegnare alla parola stessa. */
  54. #define IND_MR_SR    '4'
  55. #define IND_MR_SL    '5'
  56. #define IND_ML_SR    '6'
  57. #define IND_ML_SL    '7'
  58.  
  59. #define NO_SEL        0    /* Se PEDWindow.Block=NO_SEL -> nessun blocco selezionato */
  60. #define BLOCK_SEL    1    /* Se PEDWindow.Block=BLOCK_SEL -> un blocco e' selezionato */
  61. #define COLBLOCK_SEL    2    /* Se PEDWindow.Block=COLBLOCK_SEL -> un blocco colonnare e' sel. */
  62.  
  63.  
  64.  
  65. /******
  66.  * Definizione struttura template
  67.  ******/
  68.  
  69. #define MAXTEMPLATE    21
  70.  
  71. struct MyTemplate
  72. {
  73.     char             Template[MAXTEMPLATE+1];
  74.     struct MyProgram    *Prg;
  75.     struct MyTemplate    *NextTemplate;
  76. };
  77.  
  78.  
  79.  
  80. /******
  81.  * Definizione struttura scanner
  82.  ******/
  83.  
  84. #define MAXEXTSCAN    31
  85. #define MAXSCANNAME    121
  86.  
  87. struct MyScan
  88. {
  89.     BPTR         SegList;
  90.     ULONG        (* ASM ScanFunction)(RG(a0) char *,RG(a1) char *);
  91.     char         ScanExtension[MAXEXTSCAN+1],
  92.              Name[MAXSCANNAME+1];
  93.     struct MyScan    *NextScan;
  94. };
  95.  
  96.  
  97.  
  98. /******
  99.  * Definizione struttura che la funzione di gestione di un comando esterno riceve
  100.  ******/
  101.  
  102. struct CommandData
  103. {
  104.     char             *CommandLine;
  105.     void            **CommandArgs;
  106.     struct PEDWindow     *CurrentWindow,
  107.                  *FirstWindow;
  108.     struct Prefs         *CurrentPrefs;
  109.     LONG ASM (*ExecuteInternalCommand)(RG(a0) char *);
  110. };
  111.  
  112.  
  113.  
  114. /******
  115.  * Definizione struttura per i programmi
  116.  ******/
  117.  
  118. #define    TYPE_DUMMY    0
  119. #define    TYPE_INTERNAL    1
  120. #define    TYPE_SHELL    2
  121. #define    TYPE_AREXX    3
  122. #define    TYPE_TEXT    4
  123.  
  124. struct MyProgram
  125. {
  126.     char            *String,
  127.                 *Dir,
  128.                 *Output;
  129.     UBYTE             Type;
  130.     UBYTE             Async;
  131.     struct MyProgram    *NextProgram;
  132. };
  133.  
  134.  
  135.  
  136. /******
  137.  * Definizione struttura per i messaggi API
  138.  ******/
  139.  
  140.  
  141.  
  142. /* Struttura per la registrazione presso PED dei clienti */
  143.  
  144. struct APIClient
  145. {
  146.     struct MsgPort        *ac_ClientPort;    /* Porta a cui inviare i messaggi */
  147.     ULONG             ac_Notify;    /* Flag che indica i tipi di messaggi desiderati */
  148.     char            *ac_name;    /* Nome (da mostrare all'utente) del cliente */
  149.     struct APIClient    *ac_Next;    /* Prossimo cliente della lista (riempito dal PED) */
  150. };
  151.  
  152. #define    NOTIFY_ON_SHOW_HIDE    0x00000001    /* Notifica i messaggi SHOW/HIDE */
  153. #define    NOTIFY_ON_KEY        0x00000002    /* Notifica i messaggi KEY */
  154.  
  155.  
  156.  
  157. /* Struttura dei messaggi per la comunicazione PED<->cliente */
  158.  
  159. struct APIMessage
  160. {
  161.     struct Message         am_Message;
  162.     ULONG             am_MsgType,
  163.                  am_MsgArg[10],
  164.                  am_RC;
  165. };
  166.  
  167. /* Messaggi che PED spedisce ai clienti (nessuno dei quali presenta argomenti) */
  168.  
  169. #define PED_API_QUIT    0x80000000    /* PED sta per chiudere -> termina anche tu */
  170. #define PED_API_HIDE    0x80000001    /* PED sta chiudendo lo schermo -> chiudi le eventuali finestre */
  171. #define PED_API_SHOW    0x80000002    /* PED ha riaperto lo schermo -> riapri le eventuali finestre */
  172. #define PED_API_KEY    0x80000003    /* L'utente ha battuto un tasto */
  173.  
  174. /* Messaggi che un cliente puo' spedire al PED */
  175.  
  176. #define    PED_API_REGISTER        0x90000000    /* Registrami: Arg0 = &struct APIClient */
  177. #define    PED_API_UNREGISTER        0x90000001    /* Togli la registrazione: Arg0 = &struct APIClient */
  178.  
  179. #define PED_API_ADD_INTERNAL_COMMAND    0x90000002    /* Aggiungi un comando: Arg0 = &struct ArexxExtCmds */
  180. #define PED_API_REM_INTERNAL_COMMAND    0x90000003    /* Rimuovi un comando: Arg0 =&struct ArexxExtCmds */
  181.  
  182. #define PED_API_GET_ACTIVE_WINDOW    0x90000004    /* Ottieni la finestra attiva */
  183. #define PED_API_GET_WINDOW_LIST        0x90000005    /* Ottieni OpenWindows */
  184. #define PED_API_GET_SCREEN_ADDRESS    0x90000006    /* Ottieni l'indirizzo dello schermo */
  185. #define PED_API_GET_PREFS_ADDRESS    0x90000007    /* Ottieni l'indirizzo delle pref. */
  186. #define PED_API_GET_PUBSCRNAME        0x90000008    /* Ottieni il nome dello schermo pubblico */
  187.  
  188.  
  189.  
  190. /******
  191.  * Definizione struttura per i menu'
  192.  ******/
  193.  
  194. #define MAXMENUNAME    30
  195.  
  196. struct MyMenu
  197. {
  198.     char             Name[MAXMENUNAME+1];
  199.     struct MyItem        *Items;
  200.     struct MyMenu        *NextMenu;
  201. };
  202.  
  203. struct MyItem
  204. {
  205.     char             Name[MAXMENUNAME+1];
  206.     char             Key[MAXMENUNAME+1];
  207.     struct MySub        *Subs;
  208.     struct MyProgram    *Prg;
  209.     UBYTE             CheckType;    /* NB: DEVE RIMANERE DOPO Prg */
  210.     struct MyItem        *NextItem;
  211. };
  212.  
  213. struct MySub
  214. {
  215.     char             Name[MAXMENUNAME+1];
  216.     char             Key[MAXMENUNAME+1];
  217.     struct MyProgram    *Prg;
  218.     UBYTE             CheckType;    /* NB: DEVE RIMANERE DOPO Prg */
  219.     struct MySub        *NextSub;
  220. };
  221.  
  222. #define CHECK_NONE        0
  223. #define CHECK_USEKEYWORDCOL    1
  224. #define CHECK_USECOMMENTCOL    2
  225. #define CHECK_ERASERIGHT    3
  226. #define CHECK_SHOWCURPOS    4
  227. #define CHECK_SHOWPATHNAME    5
  228. #define CHECK_AUTOARRANGEVER    6
  229. #define CHECK_AUTOARRANGEHOR    7
  230. #define CHECK_ARRANGEFAVOURITE    8
  231. #define CHECK_USEBACKUP        9
  232. #define CHECK_SAFESAVE        10
  233. #define CHECK_UNFOLDGOTOMARKER    11
  234. #define CHECK_UNFOLDGOTOLINE    12
  235. #define CHECK_UNFOLDGOTOBYTE    13
  236. #define CHECK_UNFOLDGOTOSCAN    14
  237. #define CHECK_AUTOFOLD        15
  238. #define CHECK_USEKWINDENTATION    16
  239. #define CHECK_FASTLOADING    17
  240. #define CHECK_USECLOCK        18
  241. #define CHECK_BLANKBORDERS    19
  242. #define CHECK_AUTORELOAD    20
  243. #define CHECK_USEMOUSEBLANKER    21
  244. #define CHECK_USEAPPICON    22
  245. #define CHECK_USEAPPITEM    23
  246. #define CHECK_SETDEFPUBSCR    24
  247. #define CHECK_USETEMPLATE    25
  248. #define CHECK_USEAUTOCASE    26
  249. #define CHECK_NUM        27
  250.  
  251.  
  252. /******
  253.  * Definizione struttura per i tasti
  254.  ******/
  255.  
  256. struct MyKey
  257. {
  258.     ULONG             Qual,
  259.                  Code;
  260.     struct MyProgram    *Prg;
  261.     struct MyKey        *NextKey;
  262. };
  263.  
  264.  
  265.  
  266. /******
  267.  * Definizione struttura evento (per UNDO)
  268.  ******/
  269.  
  270. struct Event
  271. {
  272.     UBYTE         Type;
  273.     UBYTE         Arg1;
  274.     char        *Arg2;
  275.     ULONG         Arg3,
  276.              Arg4,
  277.              Arg5,
  278.              Arg6,
  279.              Arg7;
  280.     LONG         Col,
  281.              Line;
  282. };
  283.  
  284.  
  285.  
  286. /******
  287.  * Struttura per i folder
  288.  ******/
  289.  
  290. #define MAXFOLDNAME    49
  291.  
  292. struct Folder
  293. {
  294.     char         Name[MAXFOLDNAME+1];
  295.     long         Num;
  296.     struct Line    *Line;
  297.     long         Col;
  298.     struct Line    *Start,
  299.             *End;
  300.  
  301.     struct Folder    *NextFolder;
  302. };
  303.  
  304.  
  305.  
  306. /******
  307.  * Struttura per i marker
  308.  ******/
  309.  
  310. struct Marker
  311. {
  312.     struct Line    *Line;
  313.     long         Col;
  314. };
  315.  
  316.  
  317.  
  318. /******
  319.  * Struttura per i comandi arexx (INTERNI/ESTERNI),relativi template e valori di default
  320.  ******/
  321.  
  322. struct ArexxExtCmds
  323. {
  324.     UBYTE             External;
  325.     char            *Name;
  326.     char            *Template;
  327.     void            *Defaults[MAXREXXARGS];
  328.     LONG ASM        (*CommFunc)( RG(a0) struct CommandData *);
  329.     struct ArexxExtCmds    *NextCmd;
  330. };
  331.  
  332.  
  333.  
  334. /******
  335.  * Definizione struttura finestre
  336.  ******/
  337.  
  338. struct PEDWindow
  339. {
  340.     struct Window    *Window;    /* Puntatore alla finestra reale */
  341.  
  342.     struct Gadget    *GadgetScrollX,    /* Puntatori ai gadget di scorrimento */
  343.             *GadgetScrollY,
  344.             *GadgetUpArrow,
  345.             *GadgetDownArrow,
  346.             *GadgetLeftArrow,
  347.             *GadgetRightArrow;
  348.  
  349.     struct Image    *ImageUpArrow,    /* Immagini delle quattro frecce */
  350.             *ImageDownArrow,
  351.             *ImageLeftArrow,
  352.             *ImageRightArrow;
  353.  
  354.     int         OldSx,        /* Posizione precedente allo scroll */
  355.              OldSy,
  356.              Sx,        /* Posizione schermo attuale */
  357.              Sy;
  358.  
  359.     struct Line    *FirstLine,    /* Prima linea testo */
  360.             *LastLine;    /* Ultima linea testo */
  361.  
  362.     LONG         MaxCol,    /* copia di prefs.MaxCol */
  363.              NumCol,    /* # colonne nella finestra */
  364.              MaxLine,    /* # di linee nel testo */
  365.              NumLine;    /* # di linee nella finestra */
  366.  
  367.     ULONG         Size;        /* # bytes occupati dal testo (e' necessario aggiungere n.linee) */
  368.  
  369.     WORD         Left,        /* Variabili temporanee. Mantengono */
  370.              Top,        /* le dimensioni e posizione */
  371.              Width,        /* della finestra mentre lo schermo */
  372.              Height;    /* viene chiuso e poi riaperto */
  373.  
  374.     WORD         ZoomInfo[4];    /* Info per lo zoom della finestra */
  375.  
  376.     char         FileName[200];    /* Nome (+Path) del file contenuto nella finestra */
  377.     char         Title[200];    /* Titolo finestra (nomefile o "Untitled" ecc */
  378.  
  379.     LONG         CursorCol;
  380.     LONG         CursorLine;
  381.     LONG         LastCursorCol;    /* Ultima colonna in cui abbiamo scritto qualcosa */
  382.  
  383.     struct Line    *Line;        /* puntatore alla linea del cursore */
  384.     UWORD         RealNumCol;    /* # colonne REALI (strlen()) */
  385.     UWORD         LogicNumCol;    /* # colonne LOGICO (NumCol()) */
  386.  
  387.     /* Dati di comodo */
  388.     UWORD         FWidth,
  389.              FHeight,
  390.              FBase,
  391.              WOffsetX,
  392.              WOffsetY;
  393.     struct RastPort *RP;
  394.  
  395.     /* Variabili relative alla situazione attuale */
  396.     UBYTE         Ins;
  397.  
  398.     UBYTE         MLine,        /* TRUE includi tutta la linea iniziale e finale */
  399.              Block;        /* Sto marcando qualcosa ? 0=NO,1=BLOCCO,2=BLOCCO COL. */
  400.     LONG         BlockLine,    /* Inizio blocco marcato */
  401.              BlockCol;
  402.  
  403.     ULONG         Changes;    /* Cambi dall'ultimo salvataggio */
  404.  
  405.     /* Coda circolare per l'UNDO */
  406.  
  407.     struct Event     *Events;
  408.     LONG         LastEvent;
  409.     ULONG         NumEvent,
  410.              NumRedo,
  411.              UndoLevels;
  412.  
  413.     /* Cut linee */
  414.  
  415.     char        *CuttedLine;
  416.  
  417.     /* Marcatori */
  418.  
  419.     struct Marker    Marker[MAXMARKER];
  420.  
  421.     /* Fold */
  422.  
  423.     struct Folder    *Folder;
  424.     int         LinesFolded;
  425.     int         NumFolds;
  426.  
  427.     /* TRUE=Finestra chiusa */
  428.  
  429.     UBYTE         Frozen;
  430.  
  431.     /* TRUE=Finestra lockata (dall'handler) */
  432.  
  433.     ULONG         Locked;
  434.  
  435.     /* Contatore autosave (in secondi) */
  436.  
  437.     ULONG         AutoSave;
  438.  
  439.     /* Dati utili SOLO durante il load dal PED_DISK */
  440.  
  441.     struct Line    *OldLine;
  442.     UBYTE        *LineBuffer,
  443.             *Pun,
  444.              InsLine,
  445.              Warn;
  446.  
  447.     /* Dati utili per i template (ricordano gli ultimi key inseriti) */
  448.  
  449.     UBYTE             OldKeys[MAXTEMPLATE];
  450.     UBYTE             PunOldKeys;
  451.  
  452.     /* Ultima modifica */
  453.  
  454.     struct DateStamp    DateStamp;
  455.  
  456.     /* LINK */
  457.  
  458.     struct PEDWindow    *NextWindow;
  459.  
  460.     /* Dati utente */
  461.  
  462.     ULONG             UserData[16];
  463. };
  464.  
  465.  
  466.  
  467. /******
  468.  * Definizione struttura linea
  469.  ******/
  470.  
  471. struct Line
  472. {
  473.     char        *Buffer;
  474.     struct Line    *PrevLine,
  475.             *NextLine;
  476.     struct Folder    *Folder;
  477. };
  478.  
  479.  
  480.  
  481. /******
  482.  * Definizione struttura preferenze
  483.  ******/
  484.  
  485. #define MAXCOMMENT    9
  486. #define MAXFONTNAM    49
  487. #define MAXCOMMENT2    79
  488. #define MAXSTARTUPMACRO    99
  489. #define MAXREFNAME    99
  490. #define MAXFOLDFUNCNAME    29
  491.  
  492. struct Prefs
  493. {
  494.     ULONG        ScreenMode;        /* Display ID per lo schermo pubblico */
  495.     UWORD        ScreenWidth;        /* Larghezza schermo */
  496.     UWORD        ScreenHeight;        /* Altezza schermo */
  497.     UWORD        ScreenOverscanType;    /* Overscan */
  498.     UBYTE        ScreenDepth;        /* N.ro colori */
  499.     UBYTE        ScreenAutoScroll;    /* Autoscroll SI/NO */
  500.  
  501.     UWORD        ScreenColors[MAXCOLOR];    /* Primi MAXCOLOR colori */
  502.  
  503.     char        ScreenFontName[MAXFONTNAM+1];/* Font per disegnare il testo dello schermo*/
  504.     UWORD        ScreenFontSize;        /* Dim. Font per disegnare i testo dello sc. */
  505.  
  506.     char        MenuFontName[MAXFONTNAM+1];/* Font per disegnare i menu' */
  507.     UWORD        MenuFontSize;        /* Dim. Font per disegnare i menu' */
  508.  
  509.     char        TextFontName[MAXFONTNAM+1];/* Font per disegnare il testo */
  510.     UWORD        TextFontSize;        /* Dim. Font per disegnare il testo */
  511.  
  512.     char        GadgetFontName[MAXFONTNAM+1];/* Font per disegnare i gadgets */
  513.     UWORD        GadgetFontSize;        /* Dim. Font per disegnare i gadgets */
  514.  
  515.     UWORD        MaxCol;            /* Colonne massime */
  516.  
  517.     UBYTE        AltStep;        /* Salto righe CURSOR+ALT */
  518.  
  519.     UBYTE        Tab;            /* Dimensione tab. in caratteri */
  520.  
  521.     UBYTE        LeftBorder;        /* Bordi Scroll */
  522.     UBYTE        RightBorder;
  523.     UBYTE        TopBorder;
  524.     UBYTE        BottomBorder;
  525.  
  526.     UBYTE        UseKeyWordColors;    /* Abilita uso colori X per keywords */
  527.     UBYTE        KeyAlpha[256];        /* Tabella relativa */
  528.     char        **KeyWord;        /* puntatore ad array di keyword */
  529.     int        NumKeyWord;        /* # keyword nell'array */
  530.     char        GestColorOff,        /* caratteri on/off gestione colore */
  531.             GestColorOn;
  532.  
  533.     UBYTE        UseCommentColors;    /* Abilita uso colori X i commmenti */
  534.     UWORD        CheckColorLines;    /* MAX # di linee da controlare per ottenere
  535.                             il colore dei commenti 0=TUTTE */
  536.     UBYTE        Comment1Pen,
  537.             Comment2Pen;        /* penne commenti */
  538.     char        Comment1On[MAXCOMMENT+1],
  539.             Comment1Off[MAXCOMMENT+1],
  540.             Comment2On[MAXCOMMENT+1];
  541.  
  542.     UBYTE        BackPen;        /* penna sfondo schermo */
  543.     UBYTE        PaperPen;        /* penna carta */
  544.     UBYTE        DefTextPen;        /* penna testo normale */
  545.     UBYTE        PaperBlockPen;        /* penna carta blocchi */
  546.     UWORD        ScreenPens[13];        /* Penne schermo (v39=12 penne + 1 ~0 ) */
  547.  
  548.     UBYTE        Clipboard;        /* Clipboard standard */
  549.  
  550.     UBYTE        EraseRight;        /* Cancella a destra prima di un CR ? */
  551.  
  552.     UBYTE        ShowCursorPos;        /* Mostra linea/col nel titolo */
  553.     UBYTE        ShowPathName;        /* Mostra path sul titolo */
  554.  
  555.     UBYTE        AutoArrangeVer;        /* Arrangia le finestre ad ogni apertura (VER) */
  556.     UBYTE        AutoArrangeHor;        /* Arrangia le finestre ad ogni apertura (HOR) */
  557.     UBYTE        Favourite;        /* Favorisci quella attiva */
  558.  
  559.     UBYTE        UseSetDefPubScr;    /* Setta come schermo pubblico di default */
  560.  
  561.     UBYTE        UseClock;        /* Crea l'orologio */
  562.  
  563.     UBYTE        Backup;            /* Crea backup al salvataggio */
  564.     UBYTE        Save;            /* Tipo di salvataggio sicuro */
  565.     UBYTE        SaveRefs;        /* Salva anche i riferimenti ? */
  566.  
  567.     UBYTE        UnfoldOnGotoMarker;    /* Unfold al goto-marker */
  568.     UBYTE        UnfoldOnGotoLine;    /* Unfold alla ricerca linea */
  569.     UBYTE        UnfoldOnGotoByte;    /* Unfold alla ricerca byte */
  570.     UBYTE        UnfoldOnGotoScan;    /* Unfold per gli scan */
  571.  
  572.     UBYTE        BlankBorders;        /* Bordi neri ? */
  573.  
  574.     UBYTE        AutoFold;        /* Fold-all al caricamento */
  575.  
  576.     char        SearchFoldFileName[MAXFOLDFUNCNAME+1];    /* File funzione cerca-FOLD */
  577.  
  578.     LONG        DefBits;        /* Bits per i file */
  579.     char        DefComment[MAXCOMMENT2+1];/* Commento-default */
  580.     UBYTE        CreateIcons;        /* Crea icone */
  581.  
  582.     UBYTE        UseKeyWordInd;        /* Abilita indentazione per keywords */
  583.     char        **KeyWordInd;        /* puntatore ad array di keyword */
  584.     int        NumKeyWordInd;        /* # keyword nell'array */
  585.     UWORD        IndJump;        /* Colonne per livello d'indentazione (pref. =TAB) */
  586.  
  587.     UBYTE        SeparateItems;        /* Separa gli item con stringa="" */
  588.     struct MyMenu    *Menu;            /* Menu */
  589.     char        HelpFile[MAXFILENAME+1];/* Nome file guida */
  590.  
  591.     struct MyKey    *Key;            /* Tasti */
  592.  
  593.     UBYTE        UseAppIcon;        /* Usa app-icon all'iconify */
  594.  
  595.     UBYTE        UseMenuItem;        /* Usa menu-item all'iconify */
  596.  
  597.     UBYTE        UseAutoSave;        /* Attiva auto-save */
  598.     UWORD        MinAutoSave;        /* Minuti tra gli auto-save */
  599.  
  600.     UBYTE        AutoReLoad;        /* Ricarica ultimi file ? */
  601.  
  602.     UBYTE        MouseBlanker;        /* Attiva mouse-blanker */
  603.  
  604.     UBYTE        FastLoad;        /* Attiva Fast-loading */
  605.  
  606.     char        **APIClients;        /* puntatore ad array di nomi eseguibili (clienti) */
  607.     int        NumAPIClients;        /* # puntatori nell'array */
  608.  
  609.     char        StartUpMacro[MAXSTARTUPMACRO];/* Macro eseguita all'inizio */
  610.     char        PreIconifyMacro[MAXSTARTUPMACRO];/* Macro eseguita prima di iconificarsi */
  611.     char        PostIconifyMacro[MAXSTARTUPMACRO];/* Macro eseguita dopo una deiconificazione */
  612.  
  613.     struct MyScan    *Scan;            /* Puntatore alla lista di scan disponibili */
  614.  
  615.       struct MyTemplate    *Template;        /* Puntatore alla lista di template */
  616.     UBYTE        UseTemplate;        /* Attiva i template */
  617.  
  618.     UBYTE        UseRightGadget;        /* Crea il gadget di scorrimento V */
  619.     UBYTE        UseBottomGadget;    /* Crea il gadget di scorrimento H */
  620.  
  621.     LONG        LeftExtraSpace,        /* Spazio libero extra per altre finestre */
  622.             RightExtraSpace,
  623.             TopExtraSpace,
  624.             BottomExtraSpace;
  625.  
  626.     char        **DictWord;        /* puntatore ad array di parole (dizionario) */
  627.     int        NumDictWord;        /* # puntatori nell'array */
  628.     UBYTE        UseAutoCase;        /* Abilita l'autocase */
  629.  
  630.     UBYTE        CheckPar;        /* Controlla () */
  631.  
  632.     UBYTE        FastMode;        /* TRUE= FAAAAAASSSSSSTTTTTTT!!!!1!! */
  633.  
  634.     char        **Ref;            /* Riferimenti */
  635.     int        NumRef;            /* # di riferimenti */
  636.     UBYTE        RAMReference;        /* TRUE=tieni in RAM */
  637.     UBYTE        ReferenceCase;        /* Ricerca CASE-SENSITIVE ? */
  638.     char        ReferenceFile[MAXREFNAME+1];/* nome file */
  639.  
  640.     char        **HuntPath;        /* Path ricerca files */
  641.     int        NumHuntPath;        /* # di paths */
  642.  
  643.     UBYTE        UseRTSysReq;        /* Usa ReqTools system req. */
  644.     UBYTE        UseRTFileReq;        /* Usa ReqTools file req. */
  645.     UBYTE        UseRTFontReq;        /* Usa ReqTools font req. */
  646.     UBYTE        UseRTScreenReq;        /* Usa ReqTools screen req. */
  647.  
  648.     char        **ProjectFiles;        /* Files nel progetto */
  649.     int        NumProjectFiles;    /* # di files */
  650.  
  651.     UWORD        Left,            /* Margini sinistro e destro */
  652.             Right;            /* per il layoutblock */
  653.  
  654.     char        XpkLib[5];        /* Libreria XPK scelta */
  655.     UBYTE        XpkMode;        /* Metodo 0..100 */
  656.     int        XpkPos;            /* Posizione nella lista */
  657.     char        XpkPassWord[52];    /* PassWord XPK */
  658.  
  659.         ULONG        UndoLevels;        /* Livelli di UNDO (min.1) */
  660. };
  661.  
  662.  
  663.  
  664.